In recent years, server virtualization of partitioning the hardware resource of a high-performance computer to obtain partitions in units referred to as virtual machine (VM), and operating each of those partitions as a single server has been put into practical use. Server virtualization is classified into a hypervisor-type and a host OS-type based on the operating environment of the VM. The former is a method of operating a plurality of VMs on a special management program (hypervisor) which exists on a bare machine. The latter is a method of running a management program on a standard OS (host OS) as one application, and operating the VM thereon. In either of the methods described above, server partitioning includes a control unit (virtual computer control unit) referred to as virtual machine monitor (VMM) and the VM that operates thereon. The VM is referred to as a “virtual computer”, and the OS that runs thereon is referred to as a “guest OS”. The operation of the guest OS is functionally the same as the operation on a server that is not subject to server partitioning.
The VMM mainly governs the processing of “command emulation”, “memory management”, “I/O control”, and “process scheduling”. Since the VM shares and uses the resources of a physical computer, the processing governed by the VMM includes share processing that is required by the respective VMs. Generally speaking, this kind of overhead processing must be processed in preference to the processing of the respective VMs. As a scheduling method for preferentially performing the share processing, an event driven method is generally adopted. With the event driven method, the overhead processing is generally in a waiting state, is activated upon receiving an event notification and, once the requested processing is completed, once again returns to the waiting state.
In the scheduling method of the overhead processing governed by the VMM, there is an issue of how to select the physical CPU to execute the overhead processing when all physical CPUs are in a RUN state of executing the processing of the VM or the VMM. If the selection of the physical CPU is not performed properly, the share processing of the VMM will monopolize the resource of the physical CPU, which is assigned for the VM processing, for a long period of time, and there is a possibility that the processing of the VM cannot be continued.
As a method for resolving the foregoing problem, Japanese Patent Application Laid-open No. 2008-186136 discloses a method of introducing a time sharing system to the overhead processing of the VMM, and additionally using the number of times that the overhead processing of the VMM had run on the physical CPU in a RUN state as information for selecting the physical CPU so as to execute the overhead processing of the VMM equally with all physical CPUs. Note that, when processing is executed by a physical CPU, this is also sometimes referred to as the processing being run on a physical CPU.